package com.heu.blood.application.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heu.blood.application.entity.BloodApplicationEntity;
import com.heu.blood.application.vo.*;
import com.heu.blood.common.utils.PageUtils;
import com.heu.blood.send.vo.BloodInformationAndSendVo;

import java.util.List;

/**
 * 
 *
 * @author lyj
 * @email lyj@heu.com
 * @date 2024-07-15 21:14:57
 */
public interface BloodApplicationService extends IService<BloodApplicationEntity> {

    PageUtils queryPage(ApplicationSelectVo applicationSelectVo);

    int saveApplication(BloodApplicationVo bloodApplication);

    BloodApplicationVo applicationInfo(String applicationId);

    int updateApplication(BloodApplicationVo bloodApplication);

    int removeApplicationAndItemsByIds(List<BloodApplicationEntity> bloodApplication);

    CentFlowResultVo centFlowList(ApplicationSelectVo applicationSelectVo);

    BloodApplicationVo getApplicationInfo(BloodApplicationVo bloodApplicationVo);

    BloodApplicationEntity selectBloodApplicationByApplicationId(String applicationId);

    int examineAllApplication(BloodApplicationVo bloodApplicationVo);

    CenterFlowStatusResultVo getAllCenterFlowStatus(BloodApplicationVo bloodApplicationVo);

    // 通过applicationId查询申请单的生命周期
    BloodApplicationHistoryVo getBloodApplicationHistory(String applicationId);

    List<BloodApplicationItemVo> getApplicationItemVoInfo(String applicationId);

    int setApplicationPrint(String applicationId);

    List<BloodInformationAndSendVo> getBloodListUsedWithApplicationId(String applicationId);

    CenterFlowStatusResultVo getAllCenterFlowStatusWithItemId(BloodApplicationVo bloodApplicationVo);

    PageUtils getInfoOrderByIfprintAndTime(ApplicationSelectVo applicationSelectVo);

    int reapplyApplication(BloodApplicationVo bloodApplication);
}

